var page;//完工列表的页码
var _index = -1;//完工表的下标（用于表勾选）
var rowIndex = "%^%%%%";//完工表的下标（用于改变选中行样式）
var checkDatas = [];//获取质检项列表里的数据
var flag = false;//区分状态
var type = $("#type").text();//获取打开的页面是车间的还是办公室的，0为办公室，1为车间
var quality = false;//区分点击质检确定按钮，false没有，true有
var state=1;
var _fSecCoefficient;
/*
 * @Description: 预加载
 * @param : 
 */
$(function() {
	resizeIframeHight();
	baoname();
	initCheckTable();
	if(type == 1){
		$("#condition").focus();
	}
	
	//点击Tab刷新表格
	$(".QC",parent.document).click(function(){
		$('#checkTable').bootstrapTable('refresh');
	});
});
/*
 * @Description: 质检按钮点击事件
 * @param : 
 */
$("#quality").click(function(){
	$("#quality").addClass('changeColor');
	$("#qualityWX").removeClass('changeColor');
	state=1;
	initCheckTable();
	$("#workpalce").css("display","inline-block");
	$("#fCode").prev().css("display","inline-block");
	$("#fCode").css("display","inline-block");
});
/*
 * @Description: 外协质检按钮点击事件
 * @param : 
 */
$("#qualityWX").click(function(){
	$("#qualityWX").addClass('changeColor');
	$("#quality").removeClass('changeColor');
	$("#workpalce").css("display","none");
	$("#fCode").prev().css("display","none");
	$("#fCode").css("display","none");
	state=2;
	initCheckTable();  
});
/*
 * @Description: 初始化质检记录表 
 * @param :  
 */
function initCheckTable() {
	var columns=[];
	var url="";
		columns=[{
 			field : "fBillNo",
 			align : 'left',
 			valign: 'middle',
 			title : '采购单',
 			edit : false
 		}, {
 			field : "fCode",
 			align : 'left',
 			valign: 'middle',
 			title : '收料通知单',
 			edit : false
 		},{
 			field : "fSupplyName",
 			align : 'left',
 			valign: 'middle',
 			title : '供应商',
 			edit : false
 		}, {
 			field : "fNumber",
 			align : 'left',
 			valign: 'middle',
 			title : '物料代码',
 			edit : false
 		}, {
 			field : "fName",
 			align : 'left',
 			valign: 'middle',
 			title : '物料名称',
 			edit : false
 		}, {
 			field : "fModel",
 			align : 'left',
 			valign: 'middle',
 			title : '规格',
 			edit : false
 		},  {
 			field : "fStockName",
 			align : 'left',
 			valign: 'middle',
 			title : '仓库',
 			edit : false
 		}, {
 			field : "fArrivalDate",
 			align : 'left',
 			valign: 'middle',
 			title : '到货时间',
 			edit : false,
 			formatter:dateFormatter
 		},{
 			field : "fQty",
 			align : 'left',
 			valign: 'middle',
 			title : '剩余到货数',
 			edit : false
 		},{
 			field : "fAuxQty",
 			align : 'left',
 			valign: 'middle',
 			title : '剩余辅助到货数',
 			edit : false
 		}, {
 			field : "fWorkerName",
 			align : 'left',
 			valign: 'middle',
 			title : '负责人',
 			edit : false
 		},{
 			field : 'operate',//如需导出execl field必填operate，否则操作行会被导出
 			align : 'center',
 			valign: 'middle',
 			title : '操作',
 			formatter : function(value,row,index){
 				return '<button type="button" class="btn btn-default pick" style="font-size:20px;margin-right:5px;">质检</button>';
 			},
 			events : operateEvents,
 			edit : false
 		}]
		url="stockArrival/notCheckStockArrivalList.action";
	
	$('#checkTable').bootstrapTable('destroy').bootstrapTable({
		url : pathUrl(url),//请求后台的URL
		height : $(window).height()*0.85,//行高
		method : "POST",//请求方式
		//striped : true,//是否显示行间隔色
		cache : false,//是否使用缓存，默认为true
		pagination : true,//是否显示分页
		clickToSelect : true,//是否启用点击选中行
		singleSelect : true,//是否单选
		pageNumber : 1,//初始化加载第几页
		pageSize : 10,//每页的记录行数
		sidePagination : "server", // 分页方式：client客户端分页，server服务端分页（*）
		pageList : [ 10, 25, 50, 100 ],// 分页方式：client客户端分页，server服务端分页
		rowStyle : function(row, index) {//自定义样式，参数为：row：行数据，index：行下标
			var classes = [ 'success' ];
			if (index == rowIndex) {
				return {
					classes : classes[0]
				};
			}
			return {};
		},
		queryParams : function(params) {//传递参数
			var data= {}, condition;
			data.offset = params.offset;
			data.row = params.limit;
			//data.sortOrder = params.order;//排序
			//data.sortName = params.sort;//排序
			if(type == 0){
				condition = $("#condition").val();
			}else{
				condition = $("#condition").val() == ""?-1:$("#condition").val();
			}
			data.fSupplyName=$('#fSupplyName').val();
			data.fCode=$('#fCode').val();
			data.fBillNo=$("#fBillNo").val();
			data.fWorker=$("#fWorker").val();
			data.condition = condition;
			return data;
		},
		dataType : 'JSON',//数据类型
		uniqueId : "id",//每一行的唯一标识，一般为主键列
		columns : columns,
		onClickRow : function(row, $element) {//行单击
			$('.success').removeClass('success');// 去除之前选中的行的，选中样式
			$($element).addClass('success');// 添加当前选中的 success样式用于区别
			index = $element.data('index');
			rowIndex = index;
			page = $('.pagination .active').find("a").eq(0).text();
		},
		onPageChange : function(number, size) {//翻页
			if (page == number) {
				rowIndex = index;
			} else {
				$('.success').removeClass('success');
				rowIndex = "%^%%%%";
			}
		},
		onUncheck : function(index){//取消勾选
			$('.success').removeClass('success');
			rowIndex = "%^%%%%";
		},
		onLoadSuccess:function(data){
			console.log(data);
			
		}
	});
}
	
/*
 * @Description: 表操作事件
 * @param :
 */
window.operateEvents= {
	'click .pick' : function(e, value, row, index) {//质检按钮点击事件
		$(".clean_c").val("");
		$('#fType,#fStatus').selectpicker('refresh');
		$('#fQualityChkID,#fStatu').selectpicker('refresh');
		_fSecCoefficient=row.fSecCoefficient;
		if(state==1){
			row.fArrivalDate=dateFormatter(row.fArrivalDate);
			loadData(row,"#checkingForm");
			initCheckListTable();
			$('#getsale').val('0');
			$("#checkingModal").modal('show');
		}
	},
	'click .delete' : function(e, value, row, index) {//删除按钮点击事件
		showSwal(
			'删除',
			'您确定删除这条检查项吗？',
			'是的，确定删除',
			function(result){//isConfirm 点击确定按钮，参数true/false
				if(result.value){
					if(state==1){
						$("#checkListTable").bootstrapTable('removeRow',index);
					} 
					
				}
			}
		);
	}
}
/*
 * @Description: 初始化检查项表
 * @param : 
 */
function initCheckListTable(){
	var date=dateFormatter(new Date());
	$("#fWorkDate").val(date);
	var datas =[];
	datas[0]={"fName":"专检","fStandardValue":"","fUpperLimit":"","fLowerLimit":"","fActualValue":"","fQcQty":"","fAuxQcQty":"","fAuxOkQty":"","fAuxNgQty":"","fNGQty":0,"fNote":""};
	/*$.ajax({
		url : pathUrl("checkTemplateEntry/findByCondition.action"),
		type : "POST",
		dataType : "JSON",
		async : false,
		data : {
			'fNumber' : $("#dispatchingfNumber").val(),//产品代码
		},
		success : function(data) {
			if(data.message == "没有找到数据"){
				return false;
			}
			$.each(data.rows,function(index,value){
				value.fNGQty = 0;
				if(value.fNote == null){
					value.fNote = "";
				}
				datas[index+1] = value;
			});
		}
	});*/
	$('#checkListTable').bootstrapTable('destroy').bootstrapTable({
		dataType : 'JSON',//数据类型
		uniqueId : "id",//每一行的唯一标识，一般为主键列
		columns : [{
			field : "fName",
			align : 'left',
			valign: 'middle',
			//sortable : true,
			title : '检查项',
			width : '15%',
			class : 'editfocus'
		},{
			field : "fStandardValue",
			align : 'left',
			title : '标准值',
			width : '6%',
			//sortable : true,
			valign: 'middle'
		},{
			field : "fUpperLimit",
			align : 'left',
			valign: 'middle',
			width : '5%',
			//sortable : true,
			title : '上限'
		},{
			field : "fLowerLimit",
			align : 'left',
			valign: 'middle',
			width : '5%',
			//sortable : true,
			title : '下限'
		}/*,{
			field : "fUnitId",
			align : 'center',
			valign: 'middle',
			//sortable : true,
			title : '单位'
		}*/,{
			field : "fActualValue",
			align : 'left',
			valign: 'middle',
			width : '25%',
			//sortable : true,
			title : '实测值'
		},{
			field : "fQcQty",
			align : 'left',
			valign: 'middle',
			width : '6%',
			//sortable : true,
			title : '检验数',
			formatter: function (value, row, index) {
				row.fQcQty = parseFloat($("#fQty").val());
				return row.fQcQty;
            }
		},{
			field : "fNGQty",
			align : 'left',
			valign: 'middle',
			width : '6%',
			//sortable : true,
			title : '不良品',
			
		},{
			field : "fAuxQcQty",
			align : 'left',
			valign: 'middle',
			width : '6%',
			//sortable : true,
			title : '辅助<br>检验数',
			formatter: function (value, row, index) {
				if($("#fAuxQty").val()==''){
					console.log('sdhkds');
				}else{
					row.fAuxQcQty = parseFloat($("#fAuxQty").val());
				}
				return row.fAuxQcQty;
            }
		},{
			field : "fAuxNgQty",
			align : 'left',
			valign: 'middle',
			width : '6%',
			//sortable : true,
			title : '辅助<br>不良品数',
			formatter : function(value,row,index){
				orderNumber = index;
				if(value == ""){
					return "";
				}else{
					return parseFloat(value);
				}
			}
		},{
			field : "fNote",
			align : 'left',
			valign: 'middle',
			width : '15%',
			//sortable : true,
			title : '说明'
		},{
			field : 'operate',//如需导出execl field必填operate，否则操作行会被导出
			align : 'center',
			valign: 'middle',
			width : '5%',
			title : '操作',
			formatter : function(value,row,index){
				return '<button type="button" class="btn btn-danger delete" style="font-size:12px;margin-right:5px;">删除</button>';
			},
			events : operateEvents,
			edit : false
		}],
		data : datas
	});
}
$("#checkListTable").on('editable-save.bs.table',function($el,field, row, oldValue){
	if($('#dispatchingfNumber').val().substring(0,2)=='02'){
		var value = {};
		row.fNGQty = (parseFloat(row.fAuxNgQty)*_fSecCoefficient)*10000000;
		row.fNGQty = Math.round(row.fNGQty)/10000000;
		$('#checkListTable').bootstrapTable('updateRow',{index: orderNumber,row:value});
	}
})
/*
 * @Description: 新增检查项钮点击事件
 * @param :
 */
$("#addCheck").click(function() {
	$('#checkListTable').bootstrapTable('append',{"fName":"专检","fIsNgObj":0,"fNGQty":0});
});
$("#addChecks").click(function() {
	$('#checklistsTable').bootstrapTable('append',{"fIsNgObj":0,"fNGQty":0});
});
jeDate('#fWorkDate',{
	onClose : false,
	format : 'YYYY-MM-DD',
	donefun : function(obj) {
		// end.minDate = obj.val; // 开始日选好后，重置结束日的最小日期
	}
});

/*
 * @Description: 质检模态框提交按钮单击事件
 * @param :
 */
$("#confirm").click(function() {
	var isEmpty = true;
	var checkListData = $("#checkListTable").bootstrapTable('getData');
	var length = checkListData.length;//获取检查项列表里有几条数据
	var sum = 0;//各个检验数合计
	var fPassQty = parseFloat($("#dispatchingfPassQty").val());//自检良品
	checkDatas = [];
	if(checkListData.length == 0){
		swal_Tips('请添加检查项！');
		return false;
	}
	if($('#fStatus option:selected').val()=='2'&&$('#getsale').val()=='0'){
		swal_Tips('让步接收折扣不能为0！');
		return false;
	}
	if($('#fStatus option:selected').val()=='2'&&parseInt($('#getsale').val())>100){
		swal_Tips('让步接收折扣不能大于100！');
		return false;
	}
	if($('#fStatus option:selected').val()=='2'&&parseInt($('#getsale').val())<0){
		swal_Tips('让步接收折扣不能小于0！');
		return false;
	}
	$.each(checkListData,function(i,value){
		if(value.fName != "" || i == 0){
			isEmpty = false;
			var fQcQty = value.fQcQty;
			var fNGQty = value.fNGQty;
			var fIsNgObj = value.fIsNgObj;
			if(fQcQty === ""){
				swal_Tips('检验数不能为空！');
				return false;
			}
			fQcQty = parseFloat(fQcQty);
			if(isNaN(fQcQty)){
				swal_Tips('请输入正确的检验数！');
				return false;
			}
			if(fQcQty == 0){
				swal_Tips('检验数不能为0！');
				return false;
			}
			if(fQcQty > fPassQty){
				swal_Tips('检验数不能大于自检良品数！');
				return false;
			}
			fNGQty = parseFloat(fNGQty);
			if(fNGQty === ""){
				swal_Tips('不良品不能为空！');
				return false;
			}
			if(isNaN(fNGQty)){
				swal_Tips('请输入正确的不良品！');
				return false;
			}
			if(fNGQty > fQcQty){
				swal_Tips('不良品不能大于检验数！');
				return false;
			}
			if(fIsNgObj == "无不良品"){
				value.fIsNgObj = 0; 
			}
			checkDatas[i] = value;
			sum += fNGQty;
		}
		if(i == length-1){
			if(sum > fPassQty){
				swal_Tips('不良品合计不能大于自检良品数！');
				return false;
			}
			$("#checkingModal").modal('hide');
			$("#inputCardModal").modal('show');
		}
	});
	if(isEmpty){
		swal_Tips('请输入检查项目！');
		return false;
	}
});

/*
 * @Description: 质检员卡号模态框显示后操作：质检员卡号获得焦点
 * @param :
 */
$('#inputCardModal').on('shown.bs.modal', function () {
	$("#fWorkernum").focus();
});

/*
 * @Description: 质检员卡号模态框輸入完质检员卡号按回车事件
 * @param :
 */
$("#fWorkernum").on("keydown",function(e) {
	if (event.keyCode == "13") {// keyCode=13是回车键
		qualityChecking();
	}
});
/*
 * @Description: 质检员卡号模态框提交按钮单击事件
 * @param :
 */
$("#save").click(function() {
	qualityChecking();
});
/*
 * @Description: 质检提交方法
 * @param :
 */
function qualityChecking(){
	var fWorker = $("#fWorkernum").val();
	if(fWorker == ""){
		swal_Tips('请输入质检人卡号！');
		return false;
	}
	$.ajax({
		url : pathUrl("emp/findByCondition.action"),
		type : 'GET',
		dataType : "JSON",
		data : {
			"row" : 100000,
			"fNumber" : fWorker
		},
		success : function(data) {
			fWorkName=data.rows[0].fName
			if(data.code == "0000"){
				showLoading();
				var data={};
				data.fNumber=$("#dispatchingfNumber").val();
				data.fWorkName=fWorkName
				data.fSourceId=$("#id").val();
				data.fCheckQty=$("#fQty").val();
				data.fQualityChkID=$("#fStatus").val();
				data.fStatus=$("#fStatus").val();
				data.fConcessionRatio = $("#getsale").val();
				data.fWorkDate=new Date($("#fWorkDate").val().replace(/-/g,  "/"));
				data.fWorker=fWorker;
				data.datas=JSON.stringify(checkDatas);
					$.ajax({
						url : pathUrl("iQc/inStockQc.action"),
						type : 'POST',
						dataType : "JSON",
						data : data,
						success : function(data) {
							if(data.code == "0000"){
								swal_Tips_Short(data.message);
								quality = true;
//								initCheckTable();
								$("#checkTable").bootstrapTable('refresh');
								$("#inputCardModal").modal('hide');
							}else{
								swal_Tips(data.message);
							}
						},
						error : function(request) {
							swal_Tips_Error();
						}
					});
			}else{
				swal_Tips('请输入正确的质检人卡号！');
				$("#fWorker").val("");
//				$("#fWorker").focus();
			}
		},
		error : function(request) {
			swal_Tips_Error();
		}
	});
}
/*
 * @Description: 质检员卡号模态框取消按钮单击事件
 * @param :
 */
$("#back").click(function() {
	if(state==1){
		$("#checkingModal").modal('show');
	} else if(state==2){
		$("#checkModal").modal('show');
	}
});
/*
 * @Description: 清空按钮单击事件
 * @param :
 */
$("#empty").click(function() {
	flag = true;
	reseting();
	$("#condition").focus();
});
/*
 * @Description: 重置
 * @param :
 */
function reseting(){
	$(".clean-C").val("");
	initCheckTable();
	$('.success').removeClass('success');
	rowIndex = "%^%%%%";
	wipeData();
}

/*
 * @Description: 输入操作工姓名/操作工ID/派工单号回车事件
 * @param :
 */
$("#condition").keypress(function(event){
	if(event.keyCode == "13"){
		flag = false;
		initCheckTable();
		wipeData();
	}
});
/*
 * @Description: 输入操作工姓名/操作工ID/派工单号回车事件
 * @param :
 */
function wipeData(){
	if(!quality){
		$('#checkTable').on('load-success.bs.table',function(e,data){
			var name = "";
			var length = data.rows;
			if(length == null && $("#condition").val() != ""){
				swal_Tips("该操作工没有报工信息或该派工单不存在，请重新输入！");
				$(".clean-C").val("");
				flag = true;
				return false;
			}
			if(!flag){
				name = data.rows[0].fWorkerName;
			}
			$("#wname").val(name);
		});
	}
	quality = false;
}
$("#query").click(function(){
	initCheckTable();
});
$("#resetting").click(function(){
	$("#fBillNo").val("");
	$("#fSupplyName").val("");
	$("#fCode").val("");
	$("#fWorker").val("");
	$("#wname").val("");
	initCheckTable();
});
/*
 * @Description: 查询条件按回车事件
 * @param :
 */
$("#fCode,#fWorker").keypress(function(event){
	if(event.keyCode == "13"){
		if($("#fWorker").val() != ""){
			var fWorker = $("#fWorker").val();
			if(fWorker != ""){
				$.ajax({
					url : pathUrl("emp/findByCondition.action"),
					type : 'GET',
					dataType : "JSON",
					data : {
						"row" : 100000,
						"fNumber" : fWorker
					},
					success : function(data) {
//					console.log(data)
						if(data.code == "0000"){
							if(data.rows.length == 1){
								$("#wname").val(data.rows[0].fName);
							}else{
								$("#wname").val("");
							}
						}else{
							$("#wname").val("");
//						$("#fWorker").focus();
						}
					},
					error : function(request) {
						swal_Tips_Error();
					}
				});
			}
		}
		initCheckTable();
	}
});